package com.example.core.service;

import com.example.core.po.SysLicenseParam;

public interface SysKeyStoreService {

    public static final String STORE = ".keystore";

    /****
     *
     * 生成证书
     * @param sysLicenseParam
     * @throws Exception
     */
    public void create(SysLicenseParam sysLicenseParam) throws Exception;

    /****
     *
     * 这一步生成私钥
     * @param alias 私钥名称，一般唯一使用雪花算法生成、
     * @param subject 授权对象，一般唯一使用雪花算法生成、
     * @param storepass 保存密码，一般唯一使用雪花算法生成、
     * @param keypass 解密密码，一般唯一使用雪花算法生成、
     * @throws Exception
     */
    public void createPrivateKeys(String alias, String subject, String privateKey, String storepass, String keypass) throws Exception;

    /***
     *
     * 这一步生成私钥
     * @param sysLicenseParam
     * @throws Exception
     */
    public void createPrivateKeys(SysLicenseParam sysLicenseParam) throws Exception;

    /****
     *
     * 把私匙库内的公匙导出到一个文件
     * @param alias 私钥名称
     * @param storepass 保存密码
     * @throws Exception
     */
    public void exportPrivateKeys(String alias, String certfile, String privateKey, String storepass) throws Exception;


    /****
     * 把私匙库内的公匙导出到一个文件
     * @throws Exception
     */
    public void exportPrivateKeys(SysLicenseParam sysLicenseParam) throws Exception;

    /****
     * 这个证书导入公钥库
     * @param alias
     * @param storepass
     * @throws Exception
     */
    public void importPublicCert(String alias, String certfile, String publicKey, String storepass) throws Exception;

    /****
     * 这个证书导入公钥库
     */
    public void importPublicCert(SysLicenseParam sysLicenseParam) throws Exception;
}

